package com.garnier.android.lecteurrss;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import android.content.Context;
import android.widget.Toast;

public class ContainerData {	

	static public Context context;

	public ContainerData(Context cont) {
		context=cont;
	}


	public ArrayList<Article> getFeeds(String surl){
		// On passe par une classe factory pour obtenir une instance de sax
		SAXParserFactory fabrique = SAXParserFactory.newInstance();
		SAXParser parseur = null;
		ArrayList<Article> articles = null;
		try {
			// On "fabrique" une instance de SAXParser
			parseur = fabrique.newSAXParser();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		}

		// On defini l'url du fichier XML
		URL url = null;
		try {
			url=new URL(surl);
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		}

		/* 
		 * Le handler sera gestionnaire du fichier XML c'est a dire que c'est lui qui sera charge
		 * des operations de parsing. On verra cette classe dans le fichier ParserXMLHandler.
		 */
		DefaultHandler handler = new ParserXMLHandler();
		try {
			// On parse le fichier XML
			parseur.parse(url.openConnection().getInputStream(), handler);

			// On recupere directement la liste des feeds
			articles = ((ParserXMLHandler) handler).getData();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			Toast.makeText(context, "Probleme avec URL", Toast.LENGTH_LONG).show();
			e.printStackTrace();
		}
		// On la retourne l'array list
		return articles;
	}

}
